package com.itany.corejava.code12_线程.zuoye;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * @author MissChen
 * @version 1.0
 * @date 2023 年12月04日 9:22
 */

/**
 * 使用List集合实现
 *
 * 按照斗地主的规则，完成洗牌发牌的动作
 * 具体规则:
 * 使用54张牌打乱顺序,三个玩家参与游戏，三人交替摸牌，每人17张牌，最后三张留作底牌，抢地主的人可以得到那最后的三张底牌
 *
 * 1.准备牌:
 * 将54张牌，存储到一个集合当中
 * 2.洗牌:
 * 使用集合工具类集合的方法Collections.shuffle()，这个方法是打乱集合中的数据的
 * 最终在控制台输出三人手里的牌，并且输出这三张底牌
 */
public class Test05 {
    public static void main(String[] args) {
        List<String> colorList=new ArrayList<>(Arrays.asList("黑桃","红桃","梅花","方块"));
        System.out.println(colorList);

        List<String> numberList=new ArrayList<>();
        for(int i=2;i<=10;i++){
            numberList.add(i+"");
        }
        numberList.add("A");
        numberList.add("J");
        numberList.add("Q");
        numberList.add("K");

        List<String> poker=new ArrayList<>();
        for(String color:colorList){//外层循环控制花色   "黑桃","红桃","梅花","方块"
            for(String number:numberList){//内层循环控制牌的值   13    13   13   13
                poker.add(color+number);
            }
        }
        poker.add("大王");
        poker.add("小王");
        Collections.shuffle(poker);//打乱集合中的顺序
        System.out.println(poker);

        List<String> one=new ArrayList<>();
        List<String> two=new ArrayList<>();
        List<String> three=new ArrayList<>();
        List<String> last=new ArrayList<>();
        for(int i=0;i<poker.size();i++){
            String cardNum=poker.get(i);
            if(i>=51){
                last.add(cardNum);
            }else if(i%3==0){
                one.add(cardNum);
            }else if(i%3==1){
                two.add(cardNum);
            }else if(i%3==2){
                three.add(cardNum);
            }

        }
        System.out.println(one);
        System.out.println(two);
        System.out.println(three);
        System.out.println(last);


    }
}
